package com.itheima.lambda1;

import java.util.Random;

/**
 * 1. 首先存在一个接口（RandomNumHandler）
 * 2. 在该接口中存在一个抽象方法（getNumber），该方法是无参数但是有返回值
 * 3. 在测试类（RandomNumHandlerDemo）中存在一个方法（useRandomNumHandler）
 *         方法的的参数是RandomNumHandler类型的
 *         在方法内部调用了RandomNumHandler的getNumber方法
 */
public class RandomNumHandlerDemo {

    public static void main(String[] args) {
        //匿名内部类
        useRandomNumHandler(new RandomNumHandler() {
            @Override
            public int getNumber() {
                Random r= new Random();
                return   r.nextInt(10);
            }
        });

        //使用lambda
        useRandomNumHandler(()->{ Random r= new Random();return   r.nextInt(10);});
        useRandomNumHandler(()->new Random().nextInt(10)+1);

        new RandomNumHandler() {
            @Override
            public int getNumber() {
                return 0;
            }
        }.getNumber();
    }


    public static void useRandomNumHandler(RandomNumHandler handler){
        int number = handler.getNumber();
        System.out.println("获取到了随机数"+number);

    }

}
interface  RandomNumHandler{


    int getNumber();
}